/**
 * ajax封装get
 * @param {string} url 请求地址
 * @param {object} params 请求参数
 * @param {function} callback 回调函数
 * @param {string|undefined} type 数据类型
 * @param {object} headers 自定义请求头
 */
function get(url,params,callback,type,headers = {})
{   
    // 1.创建ajax对象
    const xhr =new XMLHttpRequest
    // 2.监听状态
    xhr.onreadystatechange = () =>
    {
        if (xhr.readyState === 4) 
        {
            if (xhr.status === 200) 
            {
                let res = xhr.responseText
                if (type ==="json") res = JSON.parse(res)
                callback(res)
            }else{
                console.log("出错了",xhr.status)
            }
        }
    }
    // 遍历参数params
    let temp = []
    for (let key in params)
    {
        temp.push(`${key}=${params[key]}`)
    }
    // 3.请求方式、请求地址
    xhr.open("get",`${url}?${temp.join("&")}`)
    //  设置自定义请求头
    for (let key in headers)
    {
        xhr.setRequestHeader(key,headers[key])
    }
    // 4.发送
    xhr.send(null)
}



/**
 * ajax封装post
 * @param {string} url 请求地址
 * @param {object} params 请求参数
 * @param {function} callback 回调函数
 * @param {string|undefined} type 数据类型
 * @param {object} headers 自定义请求头
 */
 function post(url,params,callback,type,headers = {})
 {
    //  1.创建ajax对象
     const xhr =new XMLHttpRequest
    //   2.监听状态
     xhr.onreadystatechange = () =>
     {
         if (xhr.readyState === 4) 
         {
             if (xhr.status === 200) 
             {
                 let res = xhr.responseText
                 if (type ==="json") res = JSON.parse(res)
                 callback(res)
             }else{
                 console.log("出错了",xhr.status)
             }
         }
     }
    //  3.请求方式、请求地址
     xhr.open("post",url)
    //  设置默认请求头
     xhr.setRequestHeader("content-type","application/x-www-form-urlencoded")
    //  设置自定义请求头
     for (let key in headers)
     {
         xhr.setRequestHeader(key,headers[key])
     }
    //  遍历参数params
     let temp = []
     for (let key in params)
     {
         temp.push(`${key}=${params[key]}`)
     }
    //  4.发送
     xhr.send(temp.join("&"))
 }